package app.common.utils.cjt.ao;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 世界媒体峰会外外在创建订单请求参数
 * @author feizns
 * @since 2023/05/15
 */
@Data
public class WmsOuterOuterInCreateOrderAo {

    /**
     * 订单
     */
    private String order;

    /**
     * 订单细节
     */
    private String orderDetails;

    /**
     * 检查
     */
    private Boolean isCheck;

    /**
     * 订单
     * @author feizns
     * @since 2023/05/15
     */
    @Data
    public static class Order {

        /**
         * 仓库没有
         */
        @JsonProperty("warehouse_no")
        private String warehouseNo;

        /**
         * 备注
         */
        private String remark;

        /**
         * 订单没有
         */
        @JsonProperty("order_no")
        private String orderNo;

        /**
         * src订单类型
         */
        @JsonProperty("src_order_type")
        private String srcOrderType;

        /**
         * src订单没有
         */
        @JsonProperty("src_order_no")
        private String srcOrderNo;

    }

    /**
     * 订单细节
     * @author feizns
     * @since 2023/05/15
     */
    @Data
    public static class OrderDetails {

        /**
         * 规范不
         */
        @JsonProperty("spec_no")
        private String specNo;

        /**
         * 全国矿工工会
         */
        private String num;

        /**
         * 辅助单元名称
         */
        @JsonProperty("aux_unit_name")
        private String auxUnitName;

        /**
         * 备注
         */
        @JsonProperty("remark")
        private String remark;

        /**
         * 缺陷
         */
        @JsonProperty("defect")
        private String defect;

    }

    /**
     * 数据
     * @return {@link List}<{@link Object}>
     */
    public List<Object> toData() {
        return Arrays.asList(
                JSONObject.parseObject(order),
                Collections.singletonList(JSONObject.parseObject(orderDetails)),
                isCheck
        );
    }

}
